﻿using System;
using System.Data;
using Persistence = Entersoft.Data.DotNetDAL.SQL.Persistence;

namespace BLL
{
    public class Cierre : Common
    {
        public bool CargaArchivoSAP(string Periodo, string NombreArchivo)
        {
            bool retorno;

            var rp = new Entersoft.Data.DotNetResponse.SQL.Persistence();

            rp.AddParametro(Periodo);
            rp.AddParametro(NombreArchivo);

            rp.StoredProcedure = "SP_INS_CargaMaestroSAP_FINAL";

            using (var obj = new Persistence(true, ConnDB))
            {
                obj.ExecuteDataTable(ref rp);

                if (!rp.TieneErrores)
                {
                    retorno = Convert.ToInt16(rp.DataTable.Rows[0]["RETORNO"]).Equals(0);
                    Mensaje = rp.DataTable.Rows[0]["MENSAJE"].ToString();

                    obj.Commit();
                }
                else
                {
                    retorno = false;
                    Mensaje = rp.Errores;
                }

            }

            return retorno;
        }

        public bool CierreFinal(string Periodo)
        {
            bool retorno;
            
            var rp = new Entersoft.Data.DotNetResponse.SQL.Persistence();

            rp.AddParametro(Periodo);

            rp.StoredProcedure = "SP_INS_CIERRE_PERIODO";

            using (var obj = new Persistence(true, ConnDB))
            {
                obj.ExecuteDataTable(ref rp);

                if (!rp.TieneErrores)
                {
                    retorno = Convert.ToInt16(rp.DataTable.Rows[0]["RETORNO"]).Equals(0);
                    Mensaje = rp.DataTable.Rows[0]["MENSAJE"].ToString();

                    obj.Commit();
                }
                else
                {
                    retorno = false;
                    Mensaje = rp.Errores;
                }

            }

            return retorno;
        }

        public DataTable ObtenerAjuste(string periodo)
        {
            DataTable retorno = null;

            var objRP = new Entersoft.Data.DotNetResponse.SQL.Persistence { StoredProcedure = "SP_SEL_AJUSTE_FINAL" };
            objRP.AddParametro(periodo);

            using (var objConn = new Persistence(false, ConnDB))
            {
                objConn.ExecuteDataTable(ref objRP);

                if (!objRP.TieneErrores)
                    retorno = objRP.DataTable;
            }

            objRP.Dispose();

            return retorno;
        }

    }
}
